
from epm.models.database import db_session, init_db, shutdown_session, engine
from sqlalchemy.types import Date, DateTime
import datetime
# import sys
# sys.path.append("..")
# from epm import app

from epm.models.usuario import Usuario
from epm.models.proyecto import Proyecto
from epm.models.fase import Fase
from epm.models.estadoFase import EstadoFase
from epm.models.estadoProyecto import EstadoProyecto
from epm.models.estadoLB import EstadoLB
from epm.models.lineaBase import LineaBase
from epm.models.estadoSC import EstadoSC
from epm.models.comite import Comite
from epm.models.permiso import Permiso
from epm.models.rol import Rol
from epm.models.atributoTipo import AtributoTipo
from epm.models.tipoItem import TipoItem
from epm.models.tipoCampo import TipoCampo
from epm.models.item import Item
from epm.models.relacion import Relacion
from epm.models.tipoRelacion import TipoRelacion
from epm.models.estadoItem import EstadoItem
from epm.models.atributoItem import AtributoItem
from epm.models.lineaBase import LineaBase
import hashlib
from epm.models.relacionManager import RelacionManager
from epm.models.relacion import relacion, Relacion
from epm.models.solicitudCambio import solicitud, SolicitudCambio
from epm.models.votosComite import votosComite, VotosComite
from epm.models.adjunto import adjunto, Adjunto
 

"""
Encargado de crear la conexion con la base de datos
"""

init_db()
session = db_session()




""" Tablas cargadas estaticamente """

# Permisos de Administrador
p1 = Permiso(codigo="10000", descripcion="gestionar usuarios")
p2 = Permiso(codigo="20000", descripcion="gestionar proyectos")
p3 = Permiso(codigo="30000", descripcion="gestionar roles")
p4 = Permiso(codigo="40000", descripcion="gestionar usuarios del proyecto")
p5 = Permiso(codigo="50000", descripcion="gestionar comite")
p6 = Permiso(codigo="60000", descripcion="consultas administracion")
p7 = Permiso(codigo="70000", descripcion="gestionar fases")
p8 = Permiso(codigo="80000", descripcion="gestionar tipos de item")
p9 = Permiso(codigo="90000", descripcion="gestionar linea base")
p10 = Permiso(codigo="11000", descripcion="gestionar solicitud de cambio")
p15 = Permiso(codigo="16000", descripcion="consultas gestion de cambios")
p16 = Permiso(codigo="17000", descripcion="gestionar items")
p17 = Permiso(codigo="18000", descripcion="generar solicitud de cambio")
permiso1 = Permiso(codigo="00001", descripcion="crear usuario")
permiso2 = Permiso(codigo="00002", descripcion="eliminar usuario")
permiso3 = Permiso(codigo="00003", descripcion="modificar usuario")
permiso4 = Permiso(codigo="00004", descripcion="consultar usuario")
permiso5 = Permiso(codigo="00005", descripcion="crear proyecto")
permiso6 = Permiso(codigo="00006", descripcion="eliminar proyecto")
permiso7 = Permiso(codigo="00007", descripcion="modificar proyecto")
permiso8 = Permiso(codigo="00008", descripcion="consultar proyecto")
#Permisos de Lider de Proyecto
permiso9 = Permiso(codigo="00009", descripcion="crear rol")
permiso10 = Permiso(codigo="00010", descripcion="asignar permisos a rol")
permiso11 = Permiso(codigo="00011", descripcion="modificar rol")
permiso12 = Permiso(codigo="00012", descripcion="eliminar rol")
permiso13 = Permiso(codigo="00013", descripcion="desasignar permisos de rol")
permiso14 = Permiso(codigo="00014", descripcion="consultar rol")
permiso15 = Permiso(codigo="00015", descripcion="asignar rol a usuario")
permiso16 = Permiso(codigo="00016", descripcion="desasignar rol de usuario")
permiso17 = Permiso(codigo="00017", descripcion="agregar integrante a comite")
permiso18 = Permiso(codigo="00018", descripcion="modificar integrante de comite")
permiso19 = Permiso(codigo="00019", descripcion="inicializar fase")
permiso20 = Permiso(codigo="00020", descripcion="modificar fase")
permiso21 = Permiso(codigo="00021", descripcion="abrir fase")
permiso22 = Permiso(codigo="00022", descripcion="cerrar fase")
permiso23 = Permiso(codigo="00023", descripcion="consultar fase")
permiso24 = Permiso(codigo="00024", descripcion="inicializar proyecto")
permiso25 = Permiso(codigo="00025", descripcion="finalizar proyecto")
#Permisos Generales
permiso26 = Permiso(codigo="00026", descripcion="crear tipo de item")
permiso27 = Permiso(codigo="00027", descripcion="modificar tipo de item")
permiso28 = Permiso(codigo="00028", descripcion="eliminar tipo de item")
permiso29 = Permiso(codigo="00029", descripcion="importar tipo de item")
permiso30 = Permiso(codigo="00030", descripcion="consultar tipo de item")
permiso31 = Permiso(codigo="00031", descripcion="crear linea base")
permiso32 = Permiso(codigo="00032", descripcion="aprobar linea base")
permiso33 = Permiso(codigo="00033", descripcion="romper linea base")
permiso34 = Permiso(codigo="00034", descripcion="consultar linea base")
permiso35 = Permiso(codigo="00035", descripcion="asignar item a linea base")
permiso36 = Permiso(codigo="00036", descripcion="desasignar item de linea base")
permiso37 = Permiso(codigo="00037", descripcion="crear item")
permiso38 = Permiso(codigo="00038", descripcion="modificar item")
permiso39 = Permiso(codigo="00039", descripcion="eliminar item")
permiso40 = Permiso(codigo="00040", descripcion="consultar item")
permiso41 = Permiso(codigo="00041", descripcion="aprobar item")
permiso42 = Permiso(codigo="00042", descripcion="generar solicitud de cambio")
permiso43 = Permiso(codigo="00043", descripcion="votar solicitud de cambio")
permiso44 = Permiso(codigo="00044", descripcion="restaurar item")
permiso45 = Permiso(codigo="00045", descripcion="atributos item")
permiso46 = Permiso(codigo="00046", descripcion="revivir item")
permiso47 = Permiso(codigo="00047", descripcion="agregar atributos tipo")
permiso48 = Permiso(codigo="00048", descripcion="eliminar atributos tipo")
permiso49 = Permiso(codigo="00049", descripcion="modificar linea base")
permiso50 = Permiso(codigo="00050", descripcion="asignar usuario a proyecto")
permiso51 = Permiso(codigo="00051", descripcion="desasignar usuario de proyecto")
permiso52 = Permiso(codigo="00052", descripcion="calcular costo")
permiso53 = Permiso(codigo="00053", descripcion="calcular complejidad")
permiso54 = Permiso(codigo="00054", descripcion="adjuntar item")
permiso55 = Permiso(codigo="00055", descripcion="modificar item por solicitud")


session.add(permiso1)
session.add(permiso2)
session.add(permiso3)
session.add(permiso4)
session.add(permiso5)
session.add(permiso6)
session.add(permiso7)
session.add(permiso8)
session.add(permiso9)
session.add(permiso10)
session.add(permiso11)
session.add(permiso12)
session.add(permiso13)
session.add(permiso14)
session.add(permiso15)
session.add(permiso16)
session.add(permiso17)
session.add(permiso18)
session.add(permiso19)
session.add(permiso20)
session.add(permiso21)
session.add(permiso22)
session.add(permiso23)
session.add(permiso24)
session.add(permiso25)
session.add(permiso26)
session.add(permiso27)
session.add(permiso28)
session.add(permiso29)
session.add(permiso30)
session.add(permiso31)
session.add(permiso32)
session.add(permiso33)
session.add(permiso34)
session.add(permiso35)
session.add(permiso36)
session.add(permiso37)
session.add(permiso38)
session.add(permiso39)
session.add(permiso40)
session.add(permiso41)
session.add(permiso42)
session.add(permiso43)
session.add(permiso44)
session.add(permiso45)
session.add(permiso46)
session.add(permiso47)
session.add(permiso48)
session.add(permiso49)
session.add(permiso50)
session.add(permiso51)
session.add(permiso52)
session.add(permiso53)
session.add(permiso54)
session.add(permiso55)

session.add(p1)
session.add(p2)
session.add(p3)
session.add(p4)
session.add(p5)
session.add(p6)
session.add(p7)
session.add(p8)
session.add(p9)
session.add(p10)
session.add(p15)
session.add(p16)
session.add(p17)

# Tipos de campos permitidos para los atributos
tipoCampo1 = TipoCampo(nombre="numerico", descripcion="Numero real")
tipoCampo2 = TipoCampo(nombre="cadena", descripcion="Cadena de caracteres")
tipoCampo3 = TipoCampo(nombre="fecha", descripcion="atributo con formato fecha")
session.add(tipoCampo1)
session.add(tipoCampo2)
session.add(tipoCampo3)

# Tipos de relaciones permitidas entre los items
tipoRelacion1 = TipoRelacion(nombre= "padre-hijo", descripcion="relacion entre items de una misma fase")
tipoRelacion2 = TipoRelacion(nombre= "ancestro-sucesor", descripcion="relacion entre items de distintas fases")

# Estados del pyto
estadoproyecto1 = EstadoProyecto (nombre="pendiente", descripcion="Por defecto al crear el proyecto")
estadoproyecto2 = EstadoProyecto (nombre="iniciado", descripcion="Se pueden agregar items al pyto")
estadoproyecto3 = EstadoProyecto (nombre="finalizado", descripcion="El proyecto ha sido terminado")
session.add(estadoproyecto1)
session.add(estadoproyecto2)
session.add(estadoproyecto3)

# Estados de los items
estadoitem1 = EstadoItem (nombre="creado", descripcion="estado inicial")
estadoitem2 = EstadoItem (nombre="aprobado", descripcion="estado aprobado")
estadoitem3 = EstadoItem (nombre="en revision", descripcion="estado en revision")
estadoitem4 = EstadoItem (nombre="en lineabase", descripcion="estado en linea base")
estadoitem5 = EstadoItem (nombre="eliminado", descripcion="estado eliminado")
session.add(estadoitem1)
session.add(estadoitem2)
session.add(estadoitem3)
session.add(estadoitem4)
session.add(estadoitem5)

# Estados de las LB
estadolb1 = EstadoLB (nombre="abierta", descripcion="estado inicial")
estadolb2 = EstadoLB (nombre="aprobada", descripcion="estado aprobado")
estadolb3 = EstadoLB (nombre="en revision", descripcion="estado en revision")
estadolb4 = EstadoLB (nombre="rota", descripcion="estado eliminado")
session.add(estadolb1)
session.add(estadolb2)
session.add(estadolb3)
session.add(estadolb4)

# Estados de las fases
estadofase1 = EstadoFase (nombre="pendiente", descripcion="estado inicial")
estadofase2 = EstadoFase (nombre="abierta", descripcion="estado abierto")
estadofase3 = EstadoFase (nombre="cerrada", descripcion="estado final")
estadofase4 = EstadoFase (nombre="en revision", descripcion="estado en revision")
session.add(estadofase1)
session.add(estadofase2)
session.add(estadofase3)
session.add(estadofase4)

# Estados de las SC
estadosc1 = EstadoSC (nombre="aprobada", descripcion="estado aprobado")
estadosc2 = EstadoSC (nombre="rechazada", descripcion="estado rechazado")
estadosc3 = EstadoSC (nombre="pendiente", descripcion="estado inicial")
session.add(estadosc1)
session.add(estadosc2)
session.add(estadosc3)

""" Tablas cargadas con datos para desarrollo y pruebas """

user = Usuario(nombre="Administrador", apellido="Administrador", cedula="0000000",
             usuario="admin", contrasenha=hashlib.sha1( "admin" ).hexdigest(), correo="admin@admin.com")
user2 = Usuario(nombre="Camilo", apellido="Baez", cedula="4250872",
             usuario="camilo", contrasenha=hashlib.sha1( "123" ).hexdigest(), correo="camilo@admin.com")
user3 = Usuario(nombre="Verena", apellido="Ojeda", cedula="3893208",
             usuario="verena", contrasenha=hashlib.sha1( "123" ).hexdigest(), correo="verena@admin.com")
user4 = Usuario(nombre="Joan", apellido="Ruax", cedula="3552348",
             usuario="juanchi", contrasenha=hashlib.sha1( "123" ).hexdigest(), correo="juanchi@admin.com")
user5 = Usuario(nombre="Permiso", apellido="Permiso", cedula="1234567",
             usuario="permiso", contrasenha=hashlib.sha1( "permiso" ).hexdigest(), correo="permiso@admin.com")
user6 = Usuario(nombre="Root", apellido="Root", cedula="0000010",
             usuario="root", contrasenha=hashlib.sha1( "root" ).hexdigest(), correo="root@root.com")


# Proyecto 1
proy1 = Proyecto (nombre="test1", cant_fases="2", cant_comite="1", presupuesto="100")
proy1.estadoproyecto = estadoproyecto1
proy1.lider = user4

# Proyecto 2
proy2 = Proyecto (nombre="test2", cant_fases="2", cant_comite="3", presupuesto="100")
proy2.estadoproyecto = estadoproyecto1
proy2.lider = user3

# Proyecto 3
proy3 = Proyecto (nombre="test3", cant_fases="2", cant_comite="3", presupuesto="100")
proy3.estadoproyecto = estadoproyecto1
proy3.lider = user4

# Proyecto 4
proy4 = Proyecto (nombre="test4", cant_fases="2", cant_comite="3", presupuesto="100")
proy4.estadoproyecto = estadoproyecto1
proy4.lider = user4

session.add(proy1)
session.add(proy2)
session.add(proy3)
session.add(proy4)

# Fases del proyecto 1
fase1p1 = Fase (nombre="fase1", numero="1", descripcion="Analisis", cant_items="0",cant_lineabase="0")
fase1p1.proyecto = proy1
fase1p1.estadofase = estadofase1

fase2p1 = Fase (nombre="fase2", numero="2", descripcion="Desarrollo", cant_items="0",cant_lineabase="0")
fase2p1.proyecto = proy1
fase2p1.estadofase = estadofase1

session.add(fase1p1)
#session.add(fase1p1)
session.add(fase2p1)
#session.add(fase2p1)

# Fases del proyecto 2
fase1p2 = Fase (nombre="fase1", numero="1", descripcion="Diseno", cant_items="0",cant_lineabase="0")
fase1p2.proyecto = proy2
fase1p2.estadofase = estadofase1

fase2p2 = Fase (nombre="fase2", numero="2", descripcion="Desarrollo", cant_items="0",cant_lineabase="0")
fase2p2.proyecto = proy2
fase2p2.estadofase = estadofase1

session.add(fase1p2)
#session.add(fase1p2)
session.add(fase2p2)
#session.add(fase2p2)

# Fases del proyecto 3
fase1p3 = Fase (nombre="fase1", numero="1", descripcion="Requerimientos", cant_items="0",cant_lineabase="0")
fase1p3.proyecto = proy3
fase1p3.estadofase = estadofase1

fase2p3 = Fase (nombre="fase2", numero="2", descripcion="Implementacion", cant_items="0",cant_lineabase="0")
fase2p3.proyecto = proy3
fase2p3.estadofase = estadofase1

# Fases del proyecto 4
fase1p4 = Fase (nombre="fase1", numero="1", descripcion="Requerimientos", cant_items="0",cant_lineabase="0")
fase1p4.proyecto = proy4
fase1p4.estadofase = estadofase1

fase2p4 = Fase (nombre="fase2", numero="2", descripcion="Implementacion", cant_items="0",cant_lineabase="0")
fase2p4.proyecto = proy4
fase2p4.estadofase = estadofase1

session.add(fase1p4)
session.add(fase2p4)

# Roles
rol = Rol (nombre="administrador", descripcion="permisos de administrador del sistema")
rol.permisos = [p1, p2, permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8]


rol1 = Rol (nombre="superusuario", descripcion="acceso a todo el sistema")
rol1.permisos = [p3, p4, p5, p6, p7, p8, p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rol2 = Rol (nombre="Lider_test1", descripcion="permisos del lider")
rol2.permisos = [p3 ,p4 ,p5 ,p6 ,p7 ,p10 ,p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14, 
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]

rol3 = Rol (nombre="rol3", descripcion="rol3")
rol3.fase = fase1p2
rol3.permisos = [permiso9, permiso10]

rol4 = Rol (nombre="rol4", descripcion="rol4")
rol4.fase = fase2p2
rol4.permisos = [permiso9, permiso10]

rol5 = Rol (nombre="rol5", descripcion="rol5")
rol5.fase = fase1p3
rol5.permisos = [permiso9, permiso10]

rol6 = Rol (nombre="rol6", descripcion="rol6")
rol6.fase = fase2p3
rol6.permisos = [permiso9, permiso10]

rolLider = Rol (nombre="Lider", descripcion="permisos de lider")
rolLider.permisos = [p3 ,p4 ,p5 ,p6 ,p7 ,p10 ,p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14, 
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]


session.add(rol)
session.add(rol1)
session.add(rol2)
session.add(rol3)
session.add(rol4)
session.add(rol5)
session.add(rol6)
session.add(rolLider)
user.roles = [rol]
user2.roles = [rol2]
user3.roles = [rol3,rol4]
user4.roles = [rol5,rol6, rol2]
user5.roles = [rol1]
user6.roles = [rol1]
session.add(user)
session.add(user2)
session.add(user3)
session.add(user4)
session.add(user5)
session.add(user6)

# Tipos de Item
tipoItem1 = TipoItem(codigo= "RF", nombre="RequerimientoFuncional", descripcion="prueba1")
atributoTipo1 = AtributoTipo(campo="Requerimiento", tamanho='100')
atributoTipo1.tipocampo = tipoCampo1
atributoTipo2 = AtributoTipo(campo="Descripcion",tamanho='100')
atributoTipo2.tipocampo = tipoCampo1
tipoItem1.atributos = [atributoTipo1, atributoTipo2]
tipoItem1.fase = fase1p1

tipoItem2 = TipoItem(codigo="RNF", nombre="RequerimientoNoFuncional", descripcion="prueba2")
tipoItem6 = TipoItem(codigo="RI", nombre="tipoItem6", descripcion="prueba3")
atributoTipo3 = AtributoTipo(campo="Actividad", tamanho='100')
atributoTipo3.tipocampo = tipoCampo1
atributoTipo4 = AtributoTipo(campo="Duracion", tamanho='100')
atributoTipo4.tipocampo = tipoCampo2
tipoItem2.atributos = [atributoTipo3, atributoTipo4]
tipoItem2.fase = fase2p1
tipoItem6.fase = fase2p1
session.add(tipoItem6)


tipoItem3 = TipoItem(codigo="TI", nombre="TipoItem", descripcion="prueba3")
atributoTipo5 = AtributoTipo(campo="Nombre", tamanho='100')
atributoTipo5.tipocampo = tipoCampo1
atributoTipo6 = AtributoTipo(campo="Descripcion", tamanho='100')
atributoTipo6.tipocampo = tipoCampo1
tipoItem3.atributos = [atributoTipo5, atributoTipo6]
tipoItem3.fase = fase1p2


tipoItem4 = TipoItem(codigo="TI2", nombre="tipoItem2", descripcion="prueba2")
atributoTipo7 = AtributoTipo(campo="Requerimiento Funcional", tamanho='100')
atributoTipo7.tipocampo = tipoCampo1
atributoTipo8 = AtributoTipo(campo="Requerimiento No Funcional", tamanho='100')
atributoTipo8.tipocampo = tipoCampo1
atributoTipo9 = AtributoTipo(campo="Requerimiento Funcional", tamanho='100')
atributoTipo9.tipocampo = tipoCampo2
tipoItem4.atributos = [atributoTipo7, atributoTipo8, atributoTipo9]
tipoItem4.fase = fase1p3

atributotipoAux = AtributoTipo(campo="Fecha")
session.add(atributotipoAux)

session.add(atributoTipo1)
session.add(atributoTipo2)
session.add(atributoTipo3)
session.add(atributoTipo4)
session.add(atributoTipo5)
session.add(atributoTipo6)
session.add(atributoTipo7)
session.add(atributoTipo8)
session.add(atributoTipo9)
session.add(tipoItem1)
session.add(tipoItem2)
session.add(tipoItem3)
session.add(tipoItem4)


# Comites de los proyectos 1, 2 y 3
comite1 = Comite(nombre="Comite1", descripcion="comite de prueba 1", cant_comite= proy1.cant_comite)
comite1.proyecto = proy1
comite1.usuarios=[proy1.lider]
comite2 = Comite(nombre="Comite2", descripcion="comite de prueba 2", cant_comite=proy2.cant_comite)
comite2.proyecto = proy2
comite2.usuarios=[proy2.lider]
comite3 = Comite(nombre="Comite2", descripcion="comite de prueba 2", cant_comite=proy3.cant_comite)
comite3.proyecto = proy3
comite3.usuarios=[proy3.lider]

session.add(comite1)
session.add(comite2)
session.add(comite3)


# lineaBase = LineaBase(observacion="prueba", cant_items= 2)
# lineaBase.estadoLB=estadolb1
# Items de prueba - Verificar los detalles que deberia tener!
# cada vez que se agrega un item al poblar fijarse en el tipo de item para la numeracion de item
item1 = Item(nombre='item1', costo='123456', complejidad="5", fechaInicio="2013-01-01", 
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="RF-1", 
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item1.estadoItem = estadoitem2
item1.tipoItem= tipoItem1
item1.creador=user

item2 = Item(nombre='item2', costo='123456', complejidad="2", fechaInicio="2013-01-01", 
             fechaFin="2013-01-30", duracion="12", version="1", numeroItem="RF-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item2.estadoItem = estadoitem1
item2.tipoItem= tipoItem1
item2.creador=user2

item3 = Item(nombre='item3', costo='123456', complejidad="6", fechaInicio="2013-01-01", 
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="RF-3", 
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item3.estadoItem = estadoitem1
item3.tipoItem= tipoItem1
item3.creador=user3

item4 = Item(nombre='item4', costo='123456', complejidad="10", fechaInicio="2013-01-01", 
             fechaFin="2013-01-30", duracion="8", version="1", numeroItem="RNF-1", 
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item4.estadoItem = estadoitem1
item4.tipoItem= tipoItem2
item4.creador=user3


item1.fase=fase1p1
item2.fase=fase1p1
item3.fase=fase2p1
item4.fase=fase2p1

#Prueba de lineas base
# lineaBase1= LineaBase(observacion='Linea base 1', cant_items="2")
# lineaBase1.estadoLB=estadolb1
# lineaBase1.items=[item1,item2]
# session.add(lineaBase1)
# lineaBase2= LineaBase(observacion='Linea base 2', cant_items="2")
# lineaBase2.estadoLB=estadolb2
# lineaBase2.items=[item3,item4]
# session.add(lineaBase2)


session.add(item1)
session.add(item2)
session.add(item3)
session.add(item4)

# rel = Relacion(item1, item2, tipoRelacion1)
# rel2 = Relacion(item1, item3, tipoRelacion1)
# rel3 = Relacion(item1, item4, tipoRelacion2)
# rel4 = Relacion(item4, item2, tipoRelacion2)

# session.add(rel)
# session.add(rel2)
# session.add(rel3)
# session.add(rel4)

# Prueba atributos de item
atributoItem1 = AtributoItem(valor= "prueba")
atributoItem1.atributotipo = atributotipoAux
session.add(atributoItem1)

solicitud = SolicitudCambio(fecha="2013-01-01", observacion="lalalala", votos_a_favor=0, votos_en_contra=0)
solicitud.estadosc = estadosc3
solicitud.items = [item1]
solicitud.usuario = user6
solicitud.comite = comite1

voto1 = VotosComite(voto="SI")
voto1.integrante = user6
voto1.solicitud = solicitud


# Commit a la base de datos
session.commit()
session.close()
